/**
' This is a part of the Primavera Portfiolio Management API examples.
' Copyright 1998, 2020, Oracle and/or its affiliates. All Rights Reserved.
'
' This source code is only intended as a supplement to the
'   Primavera Portfolio Management Enterprise API
' electronic documentation provided with the product.
'
' This source code is compatible with Primavera Portfolio Management 20.0 
**/

//*************************************************
// Get list of values in 'Domains' value list
//*************************************************

function psPortfoliosValueList_GetValues_Example_1() {


    try {
    
        var psSecurity;
        psSecurity = new ActiveXObject("psPortfoliosLib.psPortfoliosSecurity");
        var token = psSecurity.Login("admin", "Password", 10000); // Never code the password in the source file
        var ValueListObj = new ActiveXObject("psPortfoliosLib.psPortfoliosValueList");
        ValueListObj.SetSecurity(token);


        try {
        
 
            var retVal = ValueListObj.GetValues(
                         "Domains"  // sName             
                         );

            var vaVBArray = new VBArray(retVal);
            var vaArray = vaVBArray.toArray();

            var msg = "Total of " + vaArray.length + " results:\n";

            for (i = 0; i < vaArray.length; i++) {
                msg += i + ": ";
                var ID = vaArray[i].ID;
                var Text = vaArray[i].Text;
                var Weight = vaArray[i].Weight;
				var WeightDouble = vaArray[i].WeightDouble;

                msg += "ID=" + ID + ", ";
                msg += "Text=" + Text + ", ";
				msg += "Weight=" + Weight + ", ";
                msg += "WeightDouble=" + WeightDouble + "\n";
            }
            
            WshShell.Popup(msg, 0, "Get list of values in 'Domains' value list", 0 + 64);
          
            ValueListObj.ReleaseValues(retVal);
        } catch (E) {
            // in case of exception, print the error info
            WshShell.Popup("Error " + 
                           -E.number +  // negate the number to obtain the real error code
                           " " + E.description, 
                           0, "Get list of values in 'Domains' value list", 0 + 64);
                           // in a real system, the description is only displayed to support personnel, 
                           // not to the user
        }

        ValueListObj = null;

    } catch (E) {
        WshShell.Popup("Unexcpected Error: \n" + 
                       "number = " + E.number + "\n" +
                       "description = " + E.description + "\n\n", 
                       0, "Get list of values in 'Domains' value list", 0 + 64);
    }                  
}

var WshShell = new ActiveXObject("WScript.Shell");

var psPortfoliosLib = { // Primavera Portfolio Management Open API Interface
    psRETURN_VALUES:{
        ERR_OK: 0,
        ERR_INTERNAL: 1,
        ERR_COMMON_ID_ALREADY_EXISTS: 2,
        ERR_COMMON_ID_UNKNOWN: 3,
        ERR_MULTIPLE_COMMON_ID: 4,
        ERR_NOT_ITEM: 5,
        ERR_NO_NAME_GIVEN: 6,
        ERR_PORTFOLIO_UNKNOWN: 7,
        ERR_PORTFOLIO_NOT_QBP: 8,
        ERR_NAME_ALREADY_EXISTS: 9,
        ERR_NOT_PORTFOLIO: 10,
        ERR_PORTFOLIO_TYPE_MISMATCH: 11,
        ERR_PHASE_NOT_FOUND: 12,
        ERR_NO_SUCH_PHASE_FOR_ITEM: 13,
        ERR_NO_COMMON_ID: 14,
        ERR_ILLEGAL_STATUS: 15,
        ERR_ILLEGAL_PORTFOLIO_TYPE: 16,
        ERR_LIFE_CYCLE_NOT_FOUND: 17,
        ERR_ILLEGAL_GUID: 18,
        ERR_NO_PHASES_FOR_LIFE_CYCLE: 19,
        ERR_ILLEGAL_DATE: 20,
        ERR_ILLEGAL_DESCRIPTION: 21,
        ERR_ITEM_DOES_NOT_EXIST: 22,
        ERR_NO_VALUE_LIST_NAME: 23,
        ERR_VALUE_LIST_DOES_NOT_EXIST: 24,
        ERR_CANNOT_UPDATE_SYSTEM_VALUE_LIST: 25,
        ERR_DUPLICATE_TEXT_IN_VALUE_LIST: 26,
        ERR_DUPLICATE_ID_IN_VALUE_LIST: 27,
        ERR_VALUE_DOES_NOT_EXIST: 28,
        ERR_VALUE_ID_NOT_INTEGER: 29,
        ERR_ILLEGAL_NAME: 30,
        ERR_CATEGORY_NOT_SUPPORTED: 31,
        ERR_CATEGORY_UNKNOWN: 32,
        ERR_ILLEGAL_OPERATOR: 33,
        ERR_VALUE_NOT_INTEGER: 34,
        ERR_VALUE_NOT_NUMERIC: 35,
        ERR_PORTFOLIO_NOT_IN_SCOPE: 36,
        ERR_ILLEGAL_INDICATOR: 37,
        ERR_BAD_PARAMETER: 38,
        ERR_ILLEGAL_DEPENDENCY: 39,
        ERR_ADD_NEW_NEVER_CALLED: 40,
        ERR_SECURITY_NOT_SET: 41,
        ERR_SECURITY_VIOLATION: 42,
        ERR_LIFE_CYCLE_IN_PORTFOLIO: 43,
        ERR_PHASE_IN_LIFE_CYCLE: 44,
        ERR_NO_DELETE_PERMISSION: 45,
        ERR_NO_EDIT_PERMISSION_ON_PARENT: 46,
        ERR_NO_FURTHER_DETAILS_AVAILABLE: 47,
        ERR_DUPLICATE_PHASE_IN_LIFE_CYCLE: 48,
        ERR_PHASE_ACTUAL_START_DATE_LATER_THAN_END_DATE: 49,
        ERR_PHASE_PLANED_START_DATE_LATER_THAN_END_DATE: 50,
        ERR_MORE_THAN_ONE_CURRENT_PHASE_FOR_ITEM: 51,
        ERR_MENU_XML_DOES_NOT_CONFORM_TO_XSD: 52,
        ERR_SETTINGS_DO_NOT_EXIST: 53,
        ERR_SETTINGS_ALREADY_EXIST: 54,
        ERR_OBJECT_IN_USE: 55,
        ERR_EXCEEDED_AUTHORIZED_NUMBER_OF_USERS: 56,
        ERR_PHASE_FRCST_START_DATE_LATER_THAN_END_DATE: 57,
        ERR_SPECIFIC_EMAIL_ALERT_ALREADY_EXISTS: 58,
        ERR_XML_EXPORT_TEMPLATE_ERROR: 59,
        ERR_XML_EXPORT_ERROR: 60,
        ERR_XML_EXPORT_VALIDATION_ERROR: 61,
        ERR_VERSION_NAME_DOES_NOT_EXIST: 62
    },

    psPORTFOLIO_TYPE:{
        PTYP_NONE: 0,
        PTYP_ITEM: 1,
        PTYP_PROJECTS: 2,
        PTYP_PORTFOLIOS: 3
    },

    psITEM_TYPE:{
        ITYP_NONE: 0,
        ITYP_ITEM: 1,
        ITYP_PORTFOLIO_OF_ITEMS: 2,
        ITYP_PORTFOLIO_OF_PORTFOLIOS: 3
    },

    psOPEN_CLOSED_STATUS:{
        OCSTS_NONE: 0,
        OCSTS_OPEN: 1,
        OCSTS_CLOSED: 2,
        OCSTS_CANDIDATE: 3
    },

    psCELL_PART:{
        CPRT_NONE: -2,
        CPRT_VALUE: 0,
        CPRT_INDICATOR: 1,
        CPRT_INDICATOR_COLOR: 2
    },

    psOPERATOR:{
        OP_NONE: 0,
        OP_HAS_VALUE: 1,
        OP_NO_VALUE: 2,
        OP_EQUAL: 3,
        OP_NOT_EQUAL: 4,
        OP_GREATER_THAN: 5,
        OP_LESS_THAN: 6,
        OP_GREATER_THAN_OR_EQUAL: 7,
        OP_LESS_THAN_OR_EQUAL: 8,
        OP_CONTAIN: 9,
        OP_NOT_CONTAIN: 10,
        OP_BEGINS_WITH: 11,
        OP_ENDS_WITH: 12,
        OP_ANY_CHANGE: 13,
        OP_INCREASE: 14,
        OP_DECREASE: 15
    },

    psINDICATOR:{
        IND_NONE: 0,
        IND_RED: 1,
        IND_YELLOW: 2,
        IND_GREEN: 3
    },

    psFIELDS:{
        FLD_NONE: 0x0,
        FLD_NAME: 0x1,
        FLD_LIFECYCLE: 0x0002,
        FLD_STARTDATE: 0x0004,
        FLD_ENDDATE: 0x0008,
        FLD_DESCRIPTION: 0x0010,
        FLD_STATUS: 0x0020,
        FLD_TYPE: 0x0040,
        FLD_PHASES: 0x0080,
        FLD_SCOPE: 0x0100,
        FLD_QUERY: 0x0200,
        FLD_PERIODIC_UPDATE: 0x0400,
        FLD_MANAGER: 0x0800,
        FLD_CONTAINER: 0x1000,
        FLD_ALL: 0x7FFF
    },

    psCELL_UPDATE_FIELDS:{
        CFLD_NONE: 0x0,
        CFLD_VALUE: 0x1,
        CFLD_INDICATOR: 0x0002,
        CFLD_ANNOTATION: 0x0004,
        CFLD_ALL: 0x0007
    },

    psPHASE_STATUS:{
        PHSTS_NONE: 0,
        PHSTS_NOT_STARTED: 1,
        PHSTS_CURRENT_PHASE: 2,
        PHSTS_FINISHED: 3,
        PHSTS_SKIPPED: 4
    },

    psPERMISSIONS:{
        PRMS_NONE: 0x0000,
        PRMS_READ: 0x0001,
        PRMS_EDIT: 0x0004,
        PRMS_DELETE: 0x0008
    },

    psCATEGORY_TYPE:{
        CTYP_NONE: 0x0000,
        CTYP_VALUE: 0x0001,
        CTYP_INDICATOR: 0x0002,
        CTYP_BOTH: 0x0003
    },

    psCATEGORY_VALUE_TYPE:{
        CVTYP_NONE: 0x0000,
        CVTYP_INT: 0x0001,
        CVTYP_FLOAT: 0x0002,
        CVTYP_TEXT: 0x0004,
        CVTYP_DATETIME: 0x0005,
        CVTYP_VALUELIST: 0x0006,
        CVTYP_USER: 0x0007
    },

    psDATA_SOURCE:{
        DSRC_NONE: 0x0000,
        DSRC_MANUAL: 0x0001,
        DSRC_CALCULATED: 0x0002,
        DSRC_IMPORTED: 0x0003
    },

    psQUERY_ROW_TYPE:{
        QRT_NONE: 0x0000,
        QRT_CATEGORY: 0x0001,
        QRT_LOGICAL_OPERATOR_ONLY: 0x0002
    },

    psLOGICAL_OPERATOR:{
        LO_NONE: 0x0000,
        LO_AND: 0x0001,
        LO_OR: 0x0002
    },

    psUSER_LICENSE_TYPE:{
        ULT_NONE: 0,
        ULT_FULL_ACCESS: 1,
        ULT_READ_ONLY: 2,
        ULT_FORMS_ONLY: 3
    },

    psEMAIL_IMPORTANCE:{
        EMI_NONE: 0,
        EMI_LOW: 1,
        EMI_NORMAL: 2,
        EMI_HIGH: 3
    },

    psEMAIL_RECIPIENTS_FIELD:{
        ERF_NONE: 0,
        ERF_TO: 1,
        ERF_CC: 2,
        ERF_BCC: 3
    },

    psALERT_RECIPIENT_TYPE:{
        ART_NONE: 0,
        ART_USER: 1,
        ART_GROUP: 2,
        ART_ROLE: 3,
        ART_SYSTEM_ROLE: 4,
        ART_EMAIL: 5
    },

    psSYSTEM_ROLE:{
        SR_NONE: 0,
        SR_ITEM_CONTACTS: 1,
        SR_OWNER: 2,
        SR_APPROVER: 3,
        SR_SENDER: 4
    },

    psALERT_SCOPE_TYPE:{
        AST_NONE: 0,
        AST_ALL_ITEMS_AND_PORTFOLIOS: 1,
        AST_ALL_PORTFOLIOS: 2,
        AST_ALL_ITEMS: 3,
        AST_ALL_ITEMS_AND_PORTFOLIOS_IN_ROOT: 4,
        AST_SELECTED_ITEM_OR_PORTFOLIO: 5,
        AST_ALL_ITEMS_IN_SELECTED_PORTFOLIO: 6,
        AST_ALL_ITEMS_IN_SELECTED_HIERARCHY: 7,
        AST_ALL_PORTFOLIOS_IN_SELECTED_HIERARCHY: 8,
        AST_SPECIFIC_PHASE: 9,
        AST_SPECIFIC_DELIVERABLE: 10
    },

    psCALCULATION_LEVEL:{
        CL_NONE: 0,
        CL_CALCULATED: 1,
        CL_NOT_CALCULATED: 2
    },

    psPHASE_FIELD:{
        PF_NONE: 0,
        PF_STATUS: 1,
        PF_PERCENT_COMPLETE: 2,
        PF_HEALTH: 3,
        PF_PLANNED_START: 4,
        PF_PLANNED_END: 5,
        PF_FORECAST_START: 6,
        PF_FORECAST_END: 7,
        PF_ACTUAL_START: 8,
        PF_ACTUAL_END: 9
    },

    psDELIVERABLE_FIELD:{
        DF_NONE: 0,
        DF_COMPLETED: 1,
        DF_MANDATORY: 2,
        DF_NAME: 3,
        DF_OWNER_NAME: 4,
        DF_APPROVER_NAME: 5,
        DF_DUE_DATE: 6,
        DF_LINK_TEXT: 7,
        DF_LINK_ATTACHMENT: 8,
        DF_LINK_ATTACHMENT_TO_TEXT: 9,
        DF_LINK_TEXT_TO_ATTACHMENT: 10,
        DF_DESCRIPTION: 11
    },

    psACTION_ITEM_FIELD:{
        AIF_NONE: 0,
        AIF_COMPLETED: 1,
        AIF_NAME: 2,
        AIF_OWNER_NAME: 3,
        AIF_APPROVER_NAME: 4,
        AIF_START_DATE: 5,
        AIF_DUE_DATE: 6,
        AIF_LINK: 7,
        AIF_DESCRIPTION: 8
    },

    psDATE_UNIT:{
        DU_NONE: 0,
        DU_DAYS: 1,
        DU_WEEKS: 2,
        DU_MONTHS: 3,
        DU_QUARTERS: 4,
        DU_YEARS: 5
    },

    psPPM_MAPPING_MODE:{
        PMM_NONE: 0,
        PMM_PHASES: 1,
        PMM_SUB_ITEMS: 2
    },

    psPPM_SYNC_MODE:{
        PSM_NONE: 0,
        PSM_BLOCK_ALL_PUBLISHING_AND_UPDATING: 1,
        PSM_DO_NOT_SYNC_PERIODICALLY: 2,
        PSM_SYNC_PERIODICALLY: 3
    },

    psWF_PARTICIPANT_TYPE:{
        WPT_NONE: 0,
        WPT_USER: 1,
        WPT_ROLE: 2
    },

    psWF_INSTANCE_STATUS:{
        WFIS_NONE: 0,
        WFIS_PENDING: 1,
        WFIS_EXECUTING: 2,
        WFIS_FINISHED: 3,
        WFIS_STOPPED: 4,
        WFIS_HALTED: 5
    },

    psWF_TASK_INSTANCE_STATUS:{
        WFTIS_NONE: 0,
        WFTIS_EXECUTING: 1,
        WTSIS_FINISHED: 2
    },

    psWF_TASK_ASSIGNMENT_TYPE:{
        WFTAT_NONE: 0,
        WFTAT_REGULAR: 1,
        WFTAT_REASSIGNED_DUE_TO_ERROR: 2
    },

    psWF_ALTERNATE_MANAGERS_LIMITATION_TYPE:{
        WAMLT_NONE: 0,
        WAMLT_NO_ALTERNATE_MANAGERS: 1,
        WAMLT_UNLIMITED_ALTERNATE_MANAGERS: 2,
        WAMLT_SPECIFIC_ALTERNATE_MANAGERS: 3
    }

}

psPortfoliosValueList_GetValues_Example_1();   
    

